package com.ylbh.modules.brand.mapper;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ylbh.common.pojo.brand.dto.BrandGoodsDTO;
import com.ylbh.common.pojo.brand.vo.ShoppingBrandGoodsVO;
import com.ylbh.common.pojo.brand.vo.ShoppingGoodsClassVO;
import com.ylbh.modules.brand.entity.ShoppingBrandClass;
import com.ylbh.modules.brand.entity.ShoppingGoodsBrand;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface ShoppingBrandGoodsMapper {

    /**
     * brand品牌列表
     * @param brandGoodsDTO
     * @param  page
     * @return
     */
    List<ShoppingBrandGoodsVO> selectBrandGoodsList(@Param(value = "brandGoodsDTO") BrandGoodsDTO brandGoodsDTO, Page page);

    /**
     * 修改Brand品牌状态
     * @param brandGoodsDTO
     */
    void updateEnableStatusById(BrandGoodsDTO brandGoodsDTO);
    /**
     * 品牌添加
     * @param shoppingGoodsBrand
     */
    void insertBrand(ShoppingGoodsBrand shoppingGoodsBrand);
    /**
     * 关联表
     * @param shoppingBrandClass
     */
    void insertBrandCalss(ShoppingBrandClass shoppingBrandClass);
    /**
     *根据ID查询品牌
     * @param id
     * @return ShoppingGoodsBrand
     */
    ShoppingBrandGoodsVO  selectById(@Param(value = "id") String id);
    /**
     *根据品牌ID删除关联表信息
     * @param id
     * @return
     */
    void deleteBrandClass(@Param(value = "id") String id);
    /**
     *根据品牌ID便改信息
     * @param shoppingGoodsBrand
     */
    void updateBrandById(ShoppingGoodsBrand shoppingGoodsBrand);
    /**
     *根据品牌ID，查询关联表信息
     * @param id
     * @return
     */
    List<ShoppingGoodsClassVO> selectBrandClassById(String id);
    /**
     *根据D删除品牌I信息
     * @param id
     * @return
     */
    void deleteBrandById(@Param(value = "id") String id);
    /**
     * 批量修改品牌启用状态
     * @param batchValue
     * @param ids
     */
    void updateBrandEnableStateByIds(String batchValue, List<String> ids);
    /**
     * 通过二级分类ID获取对应的品牌数据
     * @param id
     * @return
     */
    List<ShoppingGoodsBrand> selectBrandList(@Param(value = "id") String id);

    /**
     * 修改品牌显示状态
     * @param brandGoodsDTO
     */
    void updateBrandShowStateById(BrandGoodsDTO brandGoodsDTO);
}
